package jobascjp;

public class Redwood extends Tree {
    public static void main(String[] args) {
        new Redwood().go();
    }
    void go(){
        go2( new Tree(), new Redwood() );
        go2( (Redwood) new Tree(), new Redwood() ); // kann Tree zu Redwood werden, Parametercast? Eigentlich nein, aber die Exception wird dann erst zur Runtime ausgewertet, da das Casting die Typprüfung aushebelt
    }
    void go2( Tree t1, Redwood r1) {
        Redwood r2 = (Redwood) t1; // hier muesste es auch wieder knallen
        Tree t2 = (Tree) r1; 
    }
}
class Tree {}

/*
 * What is the result?
 * 
 * Exception thrown at Runtime. Genauer eine ClassCastException bei Zeile 12!
 * Code compiles with no output. 
 * Compilation fails with error at line 8.
 * Compilation fails with error at line 9.
 * Compilation fails with error at line 12.
 * Compilation fails with error at line 13.
 * 
 */
